package com.hsp.demo_01;

public class Demo_17 {
    public static void main(String[] args) {
        /*
        某人有100，000元，没经过一次路口，需要交费，规则如下：
        1、当现金》50,000时，每次交5%
        2、当现金<= 50,000时，每次交1000
        编程计算，该人可以经过多少此路口

        1、每次扣5%，那么能扣多少次   **注意，这样总额永远不会低于0，所以会陷入死循环，请注意
         */
        long start = System.currentTimeMillis();
        double totalMoney = 1000000000000.0;
        int count = 0;
        while(true){
            if(totalMoney > 500000000000.0){
                totalMoney = totalMoney - totalMoney * 0.05;
            }else{
                totalMoney = totalMoney - 1000;
            }
            if(totalMoney <= 0){
                break;
            }
            count++;   //48767511个路口   花费的时间为:139
        }
        /*while(true){
            if(totalMoney > 500000000000.0){
                totalMoney = totalMoney - totalMoney * 0.05;
                count++;
            }else if(totalMoney >= 1000){
            //这种方式要好一些，因为相较于上面的方式，上面每次循环都需要进行一次判断，耗费性能。
                totalMoney = totalMoney - 1000;
                count++;
            }else{
                break;
            }
            *//*
            * 花费的时间为:1309
                一共可以路过487674993个路口*//*
        }*/
        long end = System.currentTimeMillis();
        System.out.println("花费的时间为:" + (end - start));
        System.out.println("一共可以路过" + count + "个路口");
    }
}
